import java.util.Arrays;

public class FindContentChildren {

    public int findContentChildren(int[] g, int[] s) {
//        PriorityQueue<Integer> nums1 = new PriorityQueue<>();
//        PriorityQueue<Integer> nums2 = new PriorityQueue<>();
//        int ans = 0;
//        for (int i = 0; i < g.length; i++) {
//            nums1.add(g[i]);
//        }
//        for (int i = 0; i < s.length; i++) {
//            nums2.add(s[i]);
//        }
//        while (!nums2.isEmpty() && !nums1.isEmpty()){
//            if (nums1.peek() <= nums2.peek()) {
//                ans++;
//                nums1.poll();
//                nums2.poll();
//            } else {
//                nums2.poll();
//            }
//        }
//        return ans;


        Arrays.sort(s);
        Arrays.sort(g);
        int child = 0;
        int cookie = 0;
        int ans = 0;
        while (child < g.length && cookie < s.length) {
            if (g[child] <= s[cookie]) {
                ans++;
                child++;
                cookie++;
            } else cookie++;
        }
        return ans;
    }
}
